+++ /dev/null
-#!/bin/sh
-#
-# Script that sets up jhbuild to build gnome-shell. Run this to
-# checkout jhbuild and the required configuration.
-#
-# Copyright (C) 2008, Red Hat, Inc.
-#
-# Some ideas and code taken from gtk-osx-build
-#
-# Copyright (C) 2006, 2007, 2008 Imendio AB
-#
-
-release_file=
-
-if which lsb_release > /dev/null 2>&1; then
- system=`lsb_release -is`
- version=`lsb_release -rs`
-elif [ -f /etc/fedora-release ] ; then
- system=Fedora
- release_file=/etc/fedora-release
-elif [ -f /etc/SuSE-release ] ; then
- system=SUSE
- release_file=/etc/SuSE-release
-elif [ -f /etc/mandriva-release ]; then
- system=MandrivaLinux
- release_file=/etc/mandriva-release
-fi
-
-if [ x$release_file != x ] ; then
- version=`sed 's/[^0-9\.]*\([0-9\.]\+\).*/\1/' < $release_file`
-fi
-
-# This is the configuration of packages that we'll need to successfully jhbuild.
-# Each line is of the form:
-#
-# name_of_depenency: <distro_chars>:package [<distro_chars>:package...]
-#
-# The dependency name is purely informative and isn't otherwise used. distro_chars are:
-#
-# f: Fedora
-# d: Debian/Ubuntu
-# s: SuSE
-# m: Mandriva
-#
-# Rather than have some complicated system here, when we have packages that depend
-# on distribution version, we just tweak the package list in the code below.
-# Where known, the module that requires a library is commented.
-
-all_packages() {
-cat <<EOF
-# For this script:
-curl: fdsm:curl
-git: f:git d:git-core
-
-# Build tools
-build-essential: d:build-essential
-automake: fd:automake
-asn1Parser: f:libtasn1-tools d:libtasn1-3-bin s:libtasn1 # gcr
-binutils: f:binutils
-bison: fds:bison
-cmake: fd:cmake # libproxy
-docbook-style-xsl: f:docbook-style-xsl d:docbook-xsl # gtk-doc
-flex: fds:flex
-gettext: fd:gettext
-gcc: f:gcc
-g++: f:gcc-c++
-gperf: f:gperf d:gperf # evolution-data-server gudev
-intltool: f:intltool
-libtool: f:libtool
-make: f:make
-perl-XML-Simple: f:perl-XML-Simple d:libxml-simple-perl # icon-naming-utils
-pkgconfig: f:pkgconfig
-python: f:python
-ruby: fds:ruby # WebKit
-texinfo: fd:texinfo # libgtop
-xsltproc: f:libxslt d:xsltproc # gtk-doc
-
-# Image handling libraries
-freetype: f:freetype-devel d:libfreetype6-dev # fontconfig
-jasper: f:jasper-devel d:libjasper-dev # gdk-pixbuf
-libjpeg: f:libjpeg-devel d:libjpeg-dev # gdk-pixbuf
-libpng: f:libpng-devel d:libpng-dev # gdk-pixbuf
-libtiff: fs:libtiff-devel d:libtiff-dev # gdk-pixbuf
-
-# X libraries
-GL: f:mesa-libGL-devel d:mesa-common-dev d:libgl1-mesa-dev m:GL-devel # cogl
-libX11: s:xorg-x11-proto-devel s:xorg-x11-devel # gtk+
-libXcomposite: f:libXcomposite-devel d:libxcomposite-dev # cogl mutter
-libXcursor: f:libXcursor-devel libxcursor-dev # mousetweaks
-libXdamage: f:libXdamage-devel m:libxdamage-devel d:libxdamage-dev # cogl mutter
-libXi: f:libXi-devel d:libxi-dev # gtk+
-libXrandr: f:libXrandr-devel d:libxrandr-dev # gnome-desktop
-libXrender: f:libXrender-devel d: libxrender-dev # cairo WebKit
-libXt: f:libXt-devel d:libxt-dev # WebKit
-libXtst: f:libXtst-devel d:libxtst-dev # caribou
-xcb: f:xcb-util-devel d:libx11-xcb-dev # startup-notification
-
-# Other libraries
-cracklib: fs:cracklib-devel d:libcrack2-dev # libpwquality
-cups: fs:cups-devel d:libcups2-dev # gnome-control-center
-libdb: d:libdb-dev # evolution-data-server - see below for Fedora
-icu: f:libicu-devel d:libicu-dev # WebKit
-libacl: f:libacl-devel d:libacl1-dev # gudev
-libcurl: f:libcurl-devel # liboauth. See below for Debian
-libffi: fs:libffi-devel d:libffi-dev # gobject-introspection
-libsystemd-login: fs:systemd-devel # gnome-session gnome-settings-daemon polkit PackageKit
-libusb: f:libusb1-devel d:libusb-1.0-0-dev # upower
-openssl: f:openssl-devel d:libssl-dev # liboauth
-pam: f:pam-devel d:libpam-dev # polkit
-ppp: f:ppp-devel d:ppp-dev # NetworkManager
-python-devel: f:python-devel d:python-dev # pygobject py2cairo
-readline: fsm:readline-devel d:libreadline-dev
-sane: f:sane-backends-devel d:libsane-dev # colord
-sqlite: d:libsqlite3-dev f:sqlite-devel # libsoup
-udev: f:libudev-devel d:libudev-dev # gudev
-uuid: f:libuuid-devel d:uuid-dev # Networkmanager
-wireless-tools: f:wireless-tools-devel d:libiw-dev s:libiw-devel # NetworkManager
-
-# python libraries used by gnome-shell wrapper script
-# These are commented out because the gnome-shell wrapper script
-# isn't built by default, and needs updating for running on
-# a pure-GNOME 3 system, rather than recovering to GNOME 2.
-# dbus-python: f:dbus-python d:python-dbus
-# python-gobject: f:pygobject2 d:python-gobject
-# python-gconf: f:gnome-python2-gconf d:python-gconf
-EOF
-}
-
-packages_for_distribution() {
- distribution_char=$1
- all_packages |
- sed -n 's/#.*//; /[^ ]/p' | # Remove comments and blank lines
- while read dependency_name words ; do
- for word in $words ; do
- # Word is <distribution-chars>:package
- IFS=:
- set $word
- IFS=' '
- case $1 in
- *$distribution_char*) echo $2
- esac
- done
- done
-}
-
-# We try to make it clear what we're doing via sudo so if a user gets prompted
-# for their password, they have some idea why.
-run_via_sudo() {
- echo "Running: sudo $@"
- if sudo "$@" ; then : ; else
- echo 1>&2 "Command failed."
- echo 1>&2 "Exiting gnome-shell-build-setup.sh. You can run it again safely."
- exit 1
- fi
-}
-
-if test "x$system" = xUbuntu -o "x$system" = xDebian -o "x$system" = xLinuxMint ; then
- reqd=`packages_for_distribution d`
-
- if apt-cache show libxcb-util0-dev > /dev/null 2> /dev/null; then
- reqd="$reqd libxcb-util0-dev"
- else
- reqd="$reqd libxcb-event1-dev libxcb-aux0-dev"
- fi
-
- if apt-cache show autopoint > /dev/null 2> /dev/null; then
- reqd="$reqd autopoint"
- fi
-
- if [ ! -x /usr/bin/dpkg-checkbuilddeps -o ! -x /usr/bin/apt-file ]; then
- echo "Installing base dependencies"
- run_via_sudo apt-get install dpkg-dev apt-file
- fi
-
- echo "Updating apt-file cache"
- run_via_sudo apt-file update
-
- # libcurl comes in both gnutls and openssl flavors. If the openssl
- # flavor of the runtime is installed, install the matching -dev
- # package, but default to the gnutls version. (the libcurl3 vs. libcurl4
- # mismatch is intentional and is how things are packaged.)
-
- if ! dpkg-checkbuilddeps -d libcurl-dev /dev/null 2> /dev/null; then
- if dpkg -s libcurl3 /dev/null 2> /dev/null; then
- missing="libcurl4-openssl-dev $missing"
- elif dpkg -s libcurl3-nss /dev/null 2> /dev/null; then
- missing="libcurl4-nss-dev $missing"
- else
- missing="libcurl4-gnutls-dev $missing"
- fi
- fi
-
- for pkg in $reqd ; do
- if ! dpkg-checkbuilddeps -d $pkg /dev/null 2> /dev/null; then
- missing="$pkg $missing"
- fi
- done
- if test ! "x$missing" = x; then
- echo "Installing packages"
- run_via_sudo apt-get install $missing
- fi
-fi
-
-if test "x$system" = xFedora ; then
- reqd=`packages_for_distribution f`
-
- if expr $version = 14 > /dev/null ; then
- reqd="$reqd gettext-autopoint"
- elif expr $version \>= 15 > /dev/null ; then
- reqd="$reqd gettext-devel"
- fi
-
- # For evolution-data-server:
- # /usr/include/db.h moved packages in Fedora 18
- if expr $version \>= 18 > /dev/null ; then
- reqd="$reqd libdb-devel"
- else
- reqd="$reqd db4-devel"
- fi
-
- echo -n "Computing packages to install ... "
- for pkg in $reqd ; do
- if ! rpm -q --whatprovides $pkg > /dev/null 2>&1; then
- missing="$pkg $missing"
- fi
- done
- echo "done"
-
- if test ! "x$missing" = x; then
- echo -n "Installing packages ... "
- missing_str=
- for pkg in $missing ; do
- missing_str="$missing_str${missing_str:+,}\"$pkg\""
- done
- gdbus call -e -d org.freedesktop.PackageKit -o /org/freedesktop/PackageKit -m org.freedesktop.PackageKit.Modify.InstallPackageNames 0 "[$missing_str]" "hide-finished,show-warnings"
- echo "done"
- fi
-fi
-
-if test "x$system" = xSUSE -o "x$system" = "xSUSE LINUX" ; then
- reqd=`packages_for_distribution s`
- if test ! "x$reqd" = x; then
- echo "Please run 'su --command=\"zypper install $reqd\"' and try again."
- echo
- exit 1
- fi
-fi
-
-if test "x$system" = xMandrivaLinux ; then
- reqd=`packages_for_distribution m`
- if test ! "x$reqd" = x; then
- gurpmi --auto $reqd
- fi
-fi
-
-SOURCE=$HOME/Source
-BASEURL=http://git.gnome.org/browse/gnome-shell/plain/tools/build
-
-if [ -d $SOURCE ] ; then : ; else
- mkdir $SOURCE
- echo "Created $SOURCE"
-fi
-
-checkout_git() {
- module=$1
- source=$2
-
- if [ -d $SOURCE/$1 ] ; then
- if [ -d $SOURCE/$1/.git ] ; then
- echo -n "Updating $1 ... "
- ( cd $SOURCE/$1 && git pull --rebase > /dev/null ) || exit 1
- echo "done"
- else
- echo "$SOURCE/$1 is not a git repository"
- echo "You should remove it and rerun this script"
- exit 1
- fi
- else
- echo -n "Checking out $1 into $SOURCE/$1 ... "
- cd $SOURCE
- git clone $2 > /dev/null || exit 1
- echo "done"
- fi
-}
-
-checkout_git jhbuild git://git.gnome.org/jhbuild
-
-echo -n "Installing jhbuild ... "
-(cd $SOURCE/jhbuild &&
- ./autogen.sh --simple-install &&
- make -f Makefile.plain DISABLE_GETTEXT=1 bindir=$HOME/bin install) >/dev/null
-echo "done"
-
-if [ -e $HOME/.jhbuildrc ] ; then
- if grep JHBUILDRC_GNOME_SHELL $HOME/.jhbuildrc > /dev/null ; then : ; else
- mv $HOME/.jhbuildrc $HOME/.jhbuildrc.bak
- echo "Saved ~/.jhbuildrc as ~/.jhbuildrc.bak"
- fi
-fi
-
-echo -n "Writing ~/.jhbuildrc ... "
-curl -L -s -o $HOME/.jhbuildrc $BASEURL/jhbuildrc-gnome-shell
-echo "done"
-
-if [ ! -f $HOME/.jhbuildrc-custom ]; then
- echo -n "Writing example ~/.jhbuildrc-custom ... "
- curl -L -s -o $HOME/.jhbuildrc-custom $BASEURL/jhbuildrc-custom-example
- echo "done"
-fi
-
-if [ -d $HOME/gnome-shell -a \! -d $HOME/gnome ] ; then
- cat <<EOF
-WARNING:
- The old source and install directory '$HOME/gnome-shell' exists, but
- '$HOME/gnome' doesn't. An empty $HOME/gnome will be created.
-
- To avoid starting again from scratch you should remove the empty directory,
- move your old '$HOME/gnome-shell' to '$HOME/gnome', and delete the old
- install directory:
-
- rm -rf $HOME/gnome
- mv $HOME/gnome-shell $HOME/gnome
- rm -rf $HOME/gnome/install
-EOF
-fi
-
-echo "Installing modules as system packages when possible"
-$HOME/bin/jhbuild sysdeps --install
-
-if test "x`echo $PATH | grep $HOME/bin`" = x; then
- echo "PATH does not contain $HOME/bin, it is recommended that you add that."
- echo
-fi
-
-checkout_git git-bz git://git.fishsoup.net/git-bz
-
-
-echo -n "Installing git-bz ... "
-old="`readlink $HOME/bin/git-bz`"
-( cd $HOME/bin && ln -sf ../Source/git-bz/git-bz . )
-new="`readlink $HOME/bin/git-bz`"
-echo "done"
-
-if test "$old" != "$new" -a "$old" != "" ; then
- echo "WARNING: $HOME/bin/git-bz was changed from '$old' to '$new'"
-fi
-
-echo "Done."
+++ /dev/null
-# -*- mode: python -*-
-#
-# jhbuildrc for building gnome-shell. Customizations should be done in
-# ~/.jhbuildrc-custom
-#
-# Copyright (C) 2008 Red Hat, Inc.
-#
-# Some ideas and a bit of code taken from gtk-osx-build
-#
-# Copyright (C) 2006, 2007, 2008 Imendio AB
-#
-# Use .jhbuildrc-custom to override the moduleset, modules to build,
-# the source checkout location, installation prefix, or svn usernames
-# etc.
-#
-# JHBUILDRC_GNOME_SHELL - Do not edit this line (or anything else)
-
-# Only rebuild modules that have changed
-build_policy = 'updated'
-
-moduleset = 'gnome-apps-3.14'
-
-modules = [ 'meta-gnome-core-shell' ]
-
-# what directory should the source be checked out to?
-checkoutroot = os.path.expanduser('~/gnome/source')
-
-# the prefix to configure/install modules to (must have write access)
-prefix = os.path.expanduser('~/gnome/install')
-
-# reduce what we build as much as possible
-ignore_suggests = True
-
-# Use system libraries for the builds
-if use_lib64:
- _libdir = 'lib64'
-else:
- _libdir = 'lib'
-addpath('PKG_CONFIG_PATH', os.path.join(os.sep, 'usr', _libdir, 'pkgconfig'))
-addpath('PKG_CONFIG_PATH', os.path.join(os.sep, 'usr', 'share', 'pkgconfig'))
-
-# Look in /usr/share for icons, D-BUS service files, etc
-addpath('XDG_DATA_DIRS', '/usr/share')
-# Look in /etc/xdg for system-global autostart files
-addpath('XDG_CONFIG_DIRS', '/etc/xdg')
-
-# Import optional user RC for further customization. You can override
-# the prefix or default build setup for example, or CFLAGS or
-# module_autogenargs, etc.
-#
-_userrc = os.path.join(os.environ['HOME'], '.jhbuildrc-custom')
-if os.path.exists(_userrc):
- execfile(_userrc)
-